const Koa = require('koa')
const app = new Koa()
const Router = require('koa-router')
let router = new Router()
const path = require("path");

const mongoose = require('mongoose')
const fs = require('fs')

router.get('/insertAllGoodsInfo',async(ctx)=>{
    fs.readFile("./data_json/newGoods.json",'utf8',(err,data)=>{
        data = JSON.parse(data)
        let saveCount=0
        const Goods = mongoose.model('Goods')
        data.map((value,index)=>{
            console.log(value)
            let newGoods = new Goods(value)
            newGoods.save().then(()=>{
                saveCount++
            }).catch(error=>{
                console.log(MediaStreamErrorEvent)
            })
        })
    })
    ctx.body="开始导入数据"
})

router.get('/insertAllCategory',async (ctx) => {
    fs.readFile('./data_json/category.json','utf8',(err,data) => {
        data = JSON.parse(data);
        const Category = mongoose.model('Category')
        data.RECORDS.map((value,index)=>{
            let newCategory = new Category(value)
            newCategory.save().then(() => {
                console.log('导入成功')
            }).catch((error) => {
              console.log(error)
            })
        })
    })
    ctx.body="开始导入数据"
})

router.get('/insertAllCategorySub',async (ctx) => {
    fs.readFile('./data_json/category_sub.json','utf8',function(err,data){
        data = JSON.parse(data)
        const categorySub = mongoose.model('categorySub')
        data.RECORDS.map((value,index)=>{
           let newCategorySub = new categorySub(value);
           newCategorySub.save().then(() => {
               console.log('成功')
           }).catch(error => {
               console.log(error);
           })
        })
    })
    ctx.body = '开始'
})

//前端请求数据
router.post('/getDetailGoodsInfo',async (ctx) => {
    try {
        let goodsId = ctx.request.body.goodsId;
        const Goods = mongoose.model('Goods')
        let result =  await Goods.findOne({ID:goodsId}).exec()
        ctx.body = {
            code:200,
            data:result
        }
    } catch (error) {
        ctx.body={
            code:500,
            message:error
        }
    }
})

router.get('/getCategoryList',async (ctx) => {
     try {
         const Category = mongoose.model('Category');
         let result = await Category.find().exec();
         ctx.body = {code:200,msg:result}
     } catch (error) {
        ctx.body = {code:500,msg:error}
     }
})

router.post('/getCategorySubList',async (ctx)=>{
    try {
        let id = ctx.request.body.categoryId;
        const CategorySub = mongoose.model('categorySub');
        let reuslt = await CategorySub.find({MALL_CATEGORY_ID:id}).exec();
        ctx.body = {code:200,msg:reuslt}
    } catch (error) {
        ctx.body = {code:500,msg:error}
    }
})
router.post('/getGoodsListByCategorySubID',async (ctx) =>{
    try {
        let categorySubId = ctx.request.body.categorySubId;
        let page = ctx.request.body.page;
        let num = 10;
        let start = (page - 1)*num;

        const Goods = mongoose.model('Goods');
        let result = await Goods.find({SUB_ID:categorySubId}).skip(start).limit(num).exec();
        ctx.body = ({code:200,message:result});
    } catch (error) {
        ctx.body = ({code:500,message:error});
    }
})


module.exports = router;